Software developers generally use integrated development environments (“IDEs”) to edit, build, and debug applications. An example of an IDE is MICROSOFT® VISUAL STUDIO®, which is a software development tool that is provided by MICROSOFT® CORPORATION. IDEs provide a user interface that developers can use to develop software components and applications. IDEs generally include developer tools, such as a source code editor, a compiler and/or interpreter, a build-automation tool, and a debugger. IDEs may also include a version control system and other tools to simplify construction of a graphical user interface (“GUI”).
IDEs can have various containers for constituents of applications, such as image files, source code files, libraries, and so forth. As examples, IDEs can have solution and project containers. A solution container can contain, among other things, one or more project containers. The project containers can contain constituents of applications. The constituents of the applications can be “built” by the IDE's developer tools (e.g., compiler), such as by translating human-readable source code to machine-executable object code. Each project container can be said to be a different project type because it can provide support for a different programming language. Examples of programming languages are C#, C++, MICROSOFT® VISUAL BASIC®, PERL, and so forth. A project container (or simply, “a project”) is generally defined by a project file. The project file can indicate items associated with the project, such as various properties associated with the project, files that define the components the project contains, and so forth.
Developers employ IDEs to build software components, such as controls and add-ins. A control is generally a component that a developer adds to a form to enable or enhance a user's interaction with the form. As an example, a developer can add a Portable Document Format (“PDF”) reader control to a web form so that a viewer of the web form can view a PDF document. An add-in is a component that a user can add to an application (“host application”) to supplement the host application's functionality. As an example, a user can use an add-in with a MICROSOFT® OFFICE host application (e.g., MICROSOFT® WORD) to create a PDF document based on contents of the host application.
Multiple instances of an IDE can operate simultaneously. As examples, a user and multiple applications can start instances of the IDE. A user can start MICROSOFT® VISUAL STUDIO®, which provides an instance of the IDE, to develop software in the MICROSOFT® VISUAL C#® or other programming language. The user may also be using a MICROSOFT EXCEL® macro that encounters an error, which causes MICROSOFT® EXCEL® to start a second instance of the IDE. The second instance may provide a version of the IDE that is customized for MICROSOFT® EXCEL®. If the user sets a breakpoint in a MICROSOFT WORD macro that the user is developing, MICROSOFT® WORD may start a third instance of the IDE that is customized for MICROSOFT® WORD when execution of the macro arrives at the breakpoint. When an application starts an instance of the IDE, it may need to connect to the correct instance of the IDE, such as the instance that is customized for use with the application, and not another running instance of the IDE. By connecting to the IDE, the application can take control of the IDE, such as to employ its automation functions, retrieve debugging information, control the debugger, and so forth.
Multiple instances of an IDE can operate simultaneously. As examples, a user and multiple applications can start instances of the IDE. A user can start MICROSOFT® VISUAL STUDIO®, which provides an instance of the IDE, to develop software in the MICROSOFT® VISUAL C#® or other programming language. The user may also be using a MICROSOFT® EXCEL® macro that encounters an error, which causes MICROSOFT® EXCEL® to start a second instance of the IDE. The second instance may provide a version of the IDE that is customized for MICROSOFT® EXCEL®. If the user sets a breakpoint in a MICROSOFT® WORD macro that the user is developing, MICROSOFT® WORD may start a third instance of the IDE that is customized for MICROSOFT® WORD when execution of the macro arrives at the breakpoint. When an application starts an instance of the IDE, it may need to connect to the correct instance of the IDE, such as the instance that is customized for use with the application, and not another running instance of the IDE. By connecting to the IDE, the application can take control of the IDE, such as to employ its automation functions, retrieve debugging information, control the debugger, and so forth.